//
//  IMDeviceUtils.h
//  DualMediationSDK
//
//  Created by YeJary on 2025/6/23.
//

#import <Foundation/Foundation.h>
#if TARGET_OS_IOS
#import <UIKit/UIKit.h>
#else
#import <CoreGraphics/CoreGraphics.h>
#endif

NS_ASSUME_NONNULL_BEGIN

/**
 * 设备信息工具类
 * 提供设备相关信息的获取功能
 */
@interface IMDeviceUtils : NSObject

/**
 * 获取设备唯一标识符
 * @return 设备UUID字符串
 */
+ (NSString *)deviceUUID;

/**
 * 获取设备型号
 * @return 设备型号字符串
 */
+ (NSString *)deviceModel;

/**
 * 获取系统版本
 * @return iOS系统版本字符串
 */
+ (NSString *)systemVersion;

/**
 * 获取应用版本
 * @return 应用版本字符串
 */
+ (NSString *)appVersion;

/**
 * 获取设备屏幕尺寸
 * @return 屏幕CGSize
 */
+ (CGSize)screenSize;

/**
 * 判断是否为iPad
 * @return YES表示iPad，NO表示iPhone
 */
+ (BOOL)isPad;

/**
 * 获取设备总内存
 * @return 内存大小（字节）
 */
+ (NSUInteger)totalMemory;

/**
 * 获取可用内存
 * @return 可用内存大小（字节）
 */
+ (NSUInteger)availableMemory;

/**
 * 获取IDFA（广告标识符）
 * 需要用户授权ATT权限，建议通过DMComplianceManager获取权限后调用
 * @return IDFA字符串，如果未授权或不可用则返回nil
 */
+ (NSString * _Nullable)IDFA;

/**
 * 获取IDFV（应用厂商标识符）
 * @return IDFV字符串，如果不可用则返回nil
 */
+ (NSString * _Nullable)IDFV;

+ (NSDictionary *)deviceInfo;

@end

NS_ASSUME_NONNULL_END
